const path = require('path')
const resolveD = function(dir) {
  return path.join(__dirname, dir)
}

module.exports = {
  publicPath: '/',
  // 构建时的输出目录
  outputDir: 'build',
  // 放置静态资源的目录
  assetsDir: 'static',
  // html 的输出路径
  indexPath: 'index.html',
  // 文件名哈希
  filenameHashing: true,
  // 是否为生产环境构建生成 source map？
  productionSourceMap: false,
  // 运行
  devServer: {
    host: '0.0.0.0',
    port: 17070,
    hotOnly: true
  },
  // css的处理
  css: {
    // 是否为 CSS 开启 source map。设置为 true 之后可能会影响构建的性能
    sourceMap: false,
    loaderOptions: {
      sass: {
        prependData: '@import"~@/complete/style/index.scss";'
      }
    }
  },
  // 对内部的 webpack 配置（比如修改、增加Loader选项）(链式操作)
  chainWebpack: (config) => {
    config.resolve.alias
    .set('@', resolveD('src'))
  },
  // 合并配置
  configureWebpack: {
    plugins: [

    ],
    // 警告 webpack 的性能提示
    performance: {
      hints: 'warning', // 枚举
      // 入口起点的最大体积,整数类型（以字节为单位）
      maxEntrypointSize: 50000000,
      // 生成文件的最大体积,整数类型（以字节为单位）
      maxAssetSize: 30000000,
      // 只给出 js 文件的性能提示, 提供资源文件名的断言函数
      assetFilter (assetFilename) {
        return assetFilename.endsWith('.js') || assetFilename.endsWith('.css')
      }
    }

  },
  // 第三方插件配置
  pluginOptions: {
    electronBuilder: {
      nodeIntegration: true,
      builderOptions: {
        nsis: {
          allowToChangeInstallationDirectory: true,
          oneClick: false,
          deleteAppDataOnUninstall: true
        },
        win: {
          icon: resolveD('public/logoImg/logo_256.ico')
        },
        directories: {
          output: 'build'
        },
        productName: '桌面宠物',
        publish: {
          provider: 'generic'
        }
      }
    }
  }
}
